﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;

namespace GestorDeFlotasDesktop.Chofer_Auto
{
    public partial class AsignacionChoferAuto : MasterPage 
    {
        DataTable asignaciones,errores;
        public capaDatos.SQLSyntaxisGeneration asignacionesCD = new capaDatos.SQLSyntaxisGeneration();

        int idChofer, idAuto,idTurno;
         ArrayList array = new ArrayList();
        Form ventanPadre;
        public AsignacionChoferAuto(Form ventanaParam )
        {
            
            InitializeComponent();
            ocultarMenu(ref ventanPadre, ventanaParam);
            idAuto=0;
            idTurno = 0;
            idChofer = 0;
            monthCalendar1.Visible = false;
        }

        private void AsignacionChoferAuto_Load(object sender, EventArgs e)
        {

        }

        private void AsignacionChoferAuto_FormClosing(object sender, FormClosingEventArgs e)
        {
            ventanPadre.Visible = true;
          
        }

        private void button2_Click(object sender, EventArgs e)
        {
            buscadorAutos autoSeleccionado = new buscadorAutos();

            autoSeleccionado.ShowDialog(this);
           
            idAuto = autoSeleccionado.idAuto;
            if (idAuto != 0)//si seleccionó auto
                textBox1.Text = autoSeleccionado.patenteAuto;
            
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            buscadorChofer choferSeleccionado = new buscadorChofer();

            choferSeleccionado.ShowDialog(this);
            
            idChofer = choferSeleccionado.idChofer;
            if(idChofer!=0)//si seleccionó chofer
                textBox2.Text = choferSeleccionado.dniChofer;
            
        }

        private void button3_Click(object sender, EventArgs e)
        {
            buscadorTurno turnoSeleccionado = new buscadorTurno();

            turnoSeleccionado.ShowDialog(this);
            idTurno = turnoSeleccionado.idTurno;
            if(idTurno!=0)//si seleccionó turno
                textBox3.Text = turnoSeleccionado.descripcionTurno;
            
        }

        private void button5_Click(object sender, EventArgs e)
        {
            if (monthCalendar1.Visible)
            {
                monthCalendar1.Visible = false;
                fecha.Text = monthCalendar1.SelectionStart.ToShortDateString();
                label1.Text = "Presione Seleccionar para abrir calendario/seleccionar fecha";
            }

            else{
                monthCalendar1.Visible = true;
            label1.Text = "Haga click en Seleccionar para cerrar el reloj";
            }
        }

        private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
        {
                fecha.Text = monthCalendar1.SelectionStart.ToShortDateString();
         
        }
    
        private void button4_Click(object sender, EventArgs e)
        {
            fecha.Text = "";
            textBox1.Text = "";
            textBox2.Text = "";
            textBox3.Text = "";
            dataGridView1.DataSource = "";
            dataGridView1.DataMember = "";
        }

        private void btAlta_Click(object sender, EventArgs e)
        {
            if (idTurno == 0 || idChofer == 0 || idAuto == 0 || fecha.Text == "")
                MessageBox.Show("Todos los datos son obligatorios. Complete los campos faltantes.", "Asignación Chofer-Auto", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            else {

                errores = asignacionesCD.executeSp("PELUSA.asignarChofer", parametrosStoredProcedure(paramsNames("fecha","idChofer", "idTurno", "idTaxi"), paramsValues(fecha.Text, idChofer, idTurno, idAuto)));
                if (Convert.ToString(errores.Rows[0].ItemArray[0]) != "ok")
                    MessageBox.Show("Error en la asignación: " + errores.Rows[0].ItemArray[0].ToString(), "Asignación Chofer-Auto", MessageBoxButtons.OK, MessageBoxIcon.Error);

                else
                {
                    string query = "Select c.dniChofer 'DNI chofer', t.descripcionTurno 'Turno',a.patenteTaxi 'Patente Taxi',ct.fechaChoferTaxi as 'fecha' ";
                    query += "from pelusa.choferes_taxis ct,pelusa.turno t,pelusa.chofer c,pelusa.taxis a where ct.idChofer=" + Convert.ToString(idChofer);
                    query += " and ct.idTurno=" + Convert.ToString(idTurno) + " and ct.idTaxi=" + Convert.ToString(idAuto);
                    query += " and ct.fechaChoferTaxi='" + monthCalendar1.SelectionStart.ToShortDateString() +"' and ct.idTurno=t.idTurno and ct.idTaxi=a.idTaxi and ct.idChofer=c.idChofer";

                    asignaciones = asignacionesCD.executeQuery(query);
                    this.dataGridView1.DataSource = asignaciones;
                    
                }
            }
        }

        private void label7_Click(object sender, EventArgs e)
        {

        }

        private void label1_Click(object sender, EventArgs e)
        {

        }
    }
}
